home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group98a.txt / 000106_icon-group-sender _Mon Mar 9 07:54:09 1998.msg < prev    next >
Internet Message Format  |  2000-09-20  |  2KB

  1. Return-Path: <icon-group-sender>
  2. Received: from kingfisher.CS.Arizona.EDU (kingfisher.CS.Arizona.EDU [192.12.69.239])
  3.     by baskerville.CS.Arizona.EDU (8.8.7/8.8.7) with SMTP id HAA21034
  4.     for <icon-group-addresses@baskerville.CS.Arizona.EDU>; Mon, 9 Mar 1998 07:54:08 -0700 (MST)
  5. Received: by kingfisher.CS.Arizona.EDU (5.65v4.0/1.1.8.2/08Nov94-0446PM)
  6.     id AA02611; Mon, 9 Mar 1998 07:54:08 -0700
  7. To: icon-group@optima.CS.Arizona.EDU
  8. Date: 7 Mar 1998 07:45:35 GMT
  9. From: jeffery@cs.utsa.edu (Clinton Jeffery)
  10. Message-Id: <6dqtuv$g94@ringer.cs.utsa.edu>
  11. Organization: The University of Texas at San Antonio
  12. Sender: icon-group-request@optima.CS.Arizona.EDU
  13. References: <3500e0ab.4475385@news.waymark.net>
  14. Reply-To: jeffery@cs.utsa.edu
  15. Subject: Re: Memory Use Questions
  16. Errors-To: icon-group-errors@optima.CS.Arizona.EDU
  17. Status: RO
  18. Content-Length: 1562
  19.  
  20. Gary Hill (ghill@waymark.net) wrote:
  21. : When allocating a new object does Icon perform a garbage collection
  22. : before asking NT for more memory, or does it only perform a garbage
  23. : collection after asking for memory and being refused ?
  24.  
  25. Icon garbage collects, and only asks the OS for more memory when garbage
  26. collection fails to free up enough memory to satisfy a request.
  27.  
  28. : I've noticed that the amount of memory used by an application under NT
  29. : increases but never decreases. Is there a way to return unused memory
  30. : back to the system after a garbage collection ? 
  31.  
  32. No, the unused memory is retained for use by subsequent memory allocations.
  33.  
  34. : If you create a list, then assign records to it: 
  35. :      every idx := 1 to 10000 do {...build a_record put (listx , a_record)}
  36. : then empty the list, will the garbage collection process reclaim the
  37. : space used by the records if nothing else in the program refers to them?
  38.  
  39. Yes.
  40.  
  41. By the way, if you know your list has 10000 elements, it uses less space,
  42. and is faster, to ask for a list of 10000 elements: listx := list(10000) and
  43. assign those records by subscript:
  44.  
  45.     every idx := 1 to 10000 do { ...build a_record; listx[i] := a_record }
  46.  
  47. When you use put() to build very large lists, the interpreter allocates extra
  48. memory in anticipation of future calls to put(), resulting in some internal
  49. fragmentation that you can avoid if you know the correct size.
  50. --
  51. Clint Jeffery, jeffery@cs.utsa.edu
  52. Division of Computer Science, The University of Texas at San Antonio
  53. Research http://www.cs.utsa.edu/research/plss.html
  54.